home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / M2Crypto / EC.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  8KB  |  208 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import util
  5. import BIO
  6. import m2
  7.  
  8. class ECError(Exception):
  9.     pass
  10.  
  11. m2.ec_init(ECError)
  12. NID_secp112r1 = m2.NID_secp112r1
  13. NID_secp112r2 = m2.NID_secp112r2
  14. NID_secp128r1 = m2.NID_secp128r1
  15. NID_secp128r2 = m2.NID_secp128r2
  16. NID_secp160k1 = m2.NID_secp160k1
  17. NID_secp160r1 = m2.NID_secp160r1
  18. NID_secp160r2 = m2.NID_secp160r2
  19. NID_secp192k1 = m2.NID_secp192k1
  20. NID_secp224k1 = m2.NID_secp224k1
  21. NID_secp224r1 = m2.NID_secp224r1
  22. NID_secp256k1 = m2.NID_secp256k1
  23. NID_secp384r1 = m2.NID_secp384r1
  24. NID_secp521r1 = m2.NID_secp521r1
  25. NID_sect113r1 = m2.NID_sect113r1
  26. NID_sect113r2 = m2.NID_sect113r2
  27. NID_sect131r1 = m2.NID_sect131r1
  28. NID_sect131r2 = m2.NID_sect131r2
  29. NID_sect163k1 = m2.NID_sect163k1
  30. NID_sect163r1 = m2.NID_sect163r1
  31. NID_sect163r2 = m2.NID_sect163r2
  32. NID_sect193r1 = m2.NID_sect193r1
  33. NID_sect193r2 = m2.NID_sect193r2
  34. NID_sect233k1 = m2.NID_sect233k1
  35. NID_sect233r1 = m2.NID_sect233r1
  36. NID_sect239k1 = m2.NID_sect239k1
  37. NID_sect283k1 = m2.NID_sect283k1
  38. NID_sect283r1 = m2.NID_sect283r1
  39. NID_sect409k1 = m2.NID_sect409k1
  40. NID_sect409r1 = m2.NID_sect409r1
  41. NID_sect571k1 = m2.NID_sect571k1
  42. NID_sect571r1 = m2.NID_sect571r1
  43. NID_X9_62_prime192v1 = m2.NID_X9_62_prime192v1
  44. NID_X9_62_prime192v2 = m2.NID_X9_62_prime192v2
  45. NID_X9_62_prime192v3 = m2.NID_X9_62_prime192v3
  46. NID_X9_62_prime239v1 = m2.NID_X9_62_prime239v1
  47. NID_X9_62_prime239v2 = m2.NID_X9_62_prime239v2
  48. NID_X9_62_prime239v3 = m2.NID_X9_62_prime239v3
  49. NID_X9_62_prime256v1 = m2.NID_X9_62_prime256v1
  50. NID_X9_62_c2pnb163v1 = m2.NID_X9_62_c2pnb163v1
  51. NID_X9_62_c2pnb163v2 = m2.NID_X9_62_c2pnb163v2
  52. NID_X9_62_c2pnb163v3 = m2.NID_X9_62_c2pnb163v3
  53. NID_X9_62_c2pnb176v1 = m2.NID_X9_62_c2pnb176v1
  54. NID_X9_62_c2tnb191v1 = m2.NID_X9_62_c2tnb191v1
  55. NID_X9_62_c2tnb191v2 = m2.NID_X9_62_c2tnb191v2
  56. NID_X9_62_c2tnb191v3 = m2.NID_X9_62_c2tnb191v3
  57. NID_X9_62_c2pnb208w1 = m2.NID_X9_62_c2pnb208w1
  58. NID_X9_62_c2tnb239v1 = m2.NID_X9_62_c2tnb239v1
  59. NID_X9_62_c2tnb239v2 = m2.NID_X9_62_c2tnb239v2
  60. NID_X9_62_c2tnb239v3 = m2.NID_X9_62_c2tnb239v3
  61. NID_X9_62_c2pnb272w1 = m2.NID_X9_62_c2pnb272w1
  62. NID_X9_62_c2pnb304w1 = m2.NID_X9_62_c2pnb304w1
  63. NID_X9_62_c2tnb359v1 = m2.NID_X9_62_c2tnb359v1
  64. NID_X9_62_c2pnb368w1 = m2.NID_X9_62_c2pnb368w1
  65. NID_X9_62_c2tnb431r1 = m2.NID_X9_62_c2tnb431r1
  66. NID_wap_wsg_idm_ecid_wtls1 = m2.NID_wap_wsg_idm_ecid_wtls1
  67. NID_wap_wsg_idm_ecid_wtls3 = m2.NID_wap_wsg_idm_ecid_wtls3
  68. NID_wap_wsg_idm_ecid_wtls4 = m2.NID_wap_wsg_idm_ecid_wtls4
  69. NID_wap_wsg_idm_ecid_wtls5 = m2.NID_wap_wsg_idm_ecid_wtls5
  70. NID_wap_wsg_idm_ecid_wtls6 = m2.NID_wap_wsg_idm_ecid_wtls6
  71. NID_wap_wsg_idm_ecid_wtls7 = m2.NID_wap_wsg_idm_ecid_wtls7
  72. NID_wap_wsg_idm_ecid_wtls8 = m2.NID_wap_wsg_idm_ecid_wtls8
  73. NID_wap_wsg_idm_ecid_wtls9 = m2.NID_wap_wsg_idm_ecid_wtls9
  74. NID_wap_wsg_idm_ecid_wtls10 = m2.NID_wap_wsg_idm_ecid_wtls10
  75. NID_wap_wsg_idm_ecid_wtls11 = m2.NID_wap_wsg_idm_ecid_wtls11
  76. NID_wap_wsg_idm_ecid_wtls12 = m2.NID_wap_wsg_idm_ecid_wtls12
  77.  
  78. class EC:
  79.     m2_ec_key_free = m2.ec_key_free
  80.     
  81.     def __init__(self, ec, _pyfree = 0):
  82.         self.ec = ec
  83.         self._pyfree = _pyfree
  84.  
  85.     
  86.     def __del__(self):
  87.         if getattr(self, '_pyfree', 0):
  88.             self.m2_ec_key_free(self.ec)
  89.         
  90.  
  91.     
  92.     def __len__(self):
  93.         return m2.ec_key_keylen(self.ec)
  94.  
  95.     
  96.     def gen_key(self):
  97.         m2.ec_key_gen_key(self.ec)
  98.  
  99.     
  100.     def pub(self):
  101.         return EC_pub(self.ec, 0)
  102.  
  103.     
  104.     def sign_dsa(self, digest):
  105.         return m2.ecdsa_sign(self.ec, digest)
  106.  
  107.     
  108.     def verify_dsa(self, digest, r, s):
  109.         return m2.ecdsa_verify(self.ec, digest, r, s)
  110.  
  111.     
  112.     def sign_dsa_asn1(self, digest):
  113.         return m2.ecdsa_sign_asn1(self.ec, digest)
  114.  
  115.     
  116.     def verify_dsa_asn1(self, digest, blob):
  117.         return m2.ecdsa_verify_asn1(self.ec, digest, blob)
  118.  
  119.     
  120.     def compute_dh_key(self, pub_key):
  121.         return m2.ecdh_compute_key(self.ec, pub_key.ec)
  122.  
  123.     
  124.     def save_key_bio(self, bio, cipher = 'aes_128_cbc', callback = util.passphrase_callback):
  125.         if cipher is None:
  126.             return m2.ec_key_write_bio_no_cipher(self.ec, bio._ptr(), callback)
  127.         else:
  128.             ciph = getattr(m2, cipher, None)
  129.             if ciph is None:
  130.                 raise ValueError('not such cipher %s' % cipher)
  131.             
  132.             return m2.ec_key_write_bio(self.ec, bio._ptr(), ciph(), callback)
  133.  
  134.     
  135.     def save_key(self, file, cipher = 'aes_128_cbc', callback = util.passphrase_callback):
  136.         bio = BIO.openfile(file, 'wb')
  137.         return self.save_key_bio(bio, cipher, callback)
  138.  
  139.     
  140.     def save_pub_key_bio(self, bio):
  141.         return m2.ec_key_write_pubkey(self.ec, bio._ptr())
  142.  
  143.     
  144.     def save_pub_key(self, file):
  145.         bio = BIO.openfile(file, 'wb')
  146.         return m2.ec_key_write_pubkey(self.ec, bio._ptr())
  147.  
  148.     
  149.     def _check_key_type(self):
  150.         return m2.ec_key_type_check(self.ec)
  151.  
  152.     
  153.     def check_key(self):
  154.         return m2.ec_key_check_key(self.ec)
  155.  
  156.  
  157.  
  158. class EC_pub(EC):
  159.     
  160.     def __init__(self, ec, _pyfree = 0):
  161.         EC.__init__(self, ec, _pyfree)
  162.         self.der = None
  163.  
  164.     
  165.     def get_der(self):
  166.         if self.der is None:
  167.             self.der = m2.ec_key_get_public_der(self.ec)
  168.         
  169.         return self.der
  170.  
  171.     save_key = EC.save_pub_key
  172.     save_key_bio = EC.save_pub_key_bio
  173.  
  174.  
  175. def gen_params(curve):
  176.     return EC(m2.ec_key_new_by_curve_name(curve), 1)
  177.  
  178.  
  179. def load_key(file, callback = util.passphrase_callback):
  180.     bio = BIO.openfile(file)
  181.     return load_key_bio(bio, callback)
  182.  
  183.  
  184. def load_key_bio(bio, callback = util.passphrase_callback):
  185.     return EC(m2.ec_key_read_bio(bio._ptr(), callback), 1)
  186.  
  187.  
  188. def load_pub_key(file):
  189.     bio = BIO.openfile(file)
  190.     return load_pub_key_bio(bio)
  191.  
  192.  
  193. def load_pub_key_bio(bio):
  194.     ec = m2.ec_key_read_pubkey(bio._ptr())
  195.     if ec is None:
  196.         ec_error()
  197.     
  198.     return EC_pub(ec, 1)
  199.  
  200.  
  201. def ec_error():
  202.     raise ECError, m2.err_reason_error_string(m2.err_get_error())
  203.  
  204.  
  205. def pub_key_from_der(der):
  206.     return EC_pub(m2.ec_key_from_pubkey_der(der), 1)
  207.  
  208.